Unity基础(06)

您所在的位置:网站首页 unity 帧动画 脚本控制 Unity基础(06)

Unity基础(06)

2023-06-16 14:48| 来源: 网络整理| 查看: 265

一、录制动画:

将物体移动,操作的过程录制下来保存到一个物理文件,在下次使用的时候直接用代码来调用它即可。

如让物体TheCh1 绕Y轴转动90度的动画录制

1、在Unity中打开动画视图

 

2、选择指定物体,为其添加 Animation 组件 

 

3、选择要录制的物体,点击 Create 按钮。(注意录制的文件必须要放在 Project 的 Assets 目录下)

 

4、为该动画添加属性,旋转为 Transform 的Rotation 属性

 

5、时间轴的数字含义,如 0:30,表示0秒30帧。默认的是60帧为一秒。

 

6、在时间轴的指定时刻上双击鼠标左键可以创建一个新的时间点。竖直的红线表示在该时刻时,物体所在的位置与状态。

在时间轴上双击创建一个时间点,然后将竖直的红线拖动到该时间点上,再设置物体绕Y轴旋转的角度。

  

   

  【注意】:录制完毕之后,点击录制模式按钮来关闭录制。

7、点击Unity的播放按钮时,让录制的动画开始播放。

首先要将录制的动画拖拽到 Animation 上,才可以在点击播放时,自动播放刚刚录制的动画

 

二、通过C# 脚本来让其点击该物体时,实现物体的旋转(即点击该物体时,播放刚刚录制的动画)

1、Animation 的常用属性及方法(Animation)

animation.speed = 1 正常播放;animation.speed = -1 倒着播放;animation.speed = 2 快进

  

2、动画的播放状态:Once 为播放一次;Loop 为循环播放

 

3、通过代码来控制点击物体时是否播放动画

(1)、取消 自动播放按钮,以通过点击物体来控制播放

 

(2)、对应的C#脚本代码如下

using System.Collections; using System.Collections.Generic; using UnityEngine; public class TurnLeft : MonoBehaviour { private bool DoorState = false; //用一个bool值来表示门的状态 private Animation anim; public string animName = "OpenDoor"; //将动画片段的名称用一个共有变量来表示 // Use this for initialization void Start () { // 找到动画组件引用 anim = GetComponent(); } private void OnMouseDown() { if (DoorState) { if (anim.isPlaying == false) //判断该动画是否正在播放 { // 设置开始播放的时间为最后的时刻,默认是从0s开始播放的 anim[animName].time = anim[animName].length; } // 关门操作:动画从最后的时刻开始播放到0s停止 anim[animName].speed = -1; } else { // 开门操作:动画从0s到1s播放 anim[animName].speed = 1; } anim.Play(animName); // 播放动画 DoorState = !DoorState; // bool值取反,赋值给原来的门的状态 } }

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3